﻿'######################################################################################################################################
'# CLASSE EVENEMENTS (gère le comportement du plugin):
'#  - Gestion des évènements périphériques
'######################################################################################################################################
Imports MediaPortal.Dialogs
Imports MediaPortal.GUI.Library

Public Class Evenements
    Private _Parent As Plugin

    '######################################################################################################################################
    '# Constructeur
    '######################################################################################################################################
    Sub New(ByVal CLASS_Param1 As Plugin)
        _Parent = CLASS_Param1
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Evenement utilisateur Haut
    '######################################################################################################################################
    Public Sub Peripherique_Haut()
        _Parent.SMC_Explorer.ACTION_Haut()
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Evenement utilisateur Bas
    '######################################################################################################################################
    Public Sub Peripherique_Bas()
        _Parent.SMC_Explorer.ACTION_Bas()
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Evenement utilisateur Selectionner
    '######################################################################################################################################
    Public Sub Peripherique_Selectionner()
        MediaPortal.GUI.Library.Log.Debug("[SMC] Evenements.vb >> Execution de Peripherique_Selectionner()", "")
        Dim DLG_Resume As GUIDialogMenu
        Dim INT_Action As Integer

        'Si le repertoire n'est pas vide (si on ne clique pas dans le vide)
        If UBound(_Parent.SMC_Explorer.VideoElements) > -1 Then
            Select Case _Parent.SMC_Explorer.Selection_Type
                Case 0
                    'S'il s'agit d'une source
                    _Parent.SMC_Explorer.ACTION_SelectionnerRepertoire(_Parent.SMC_Explorer.Selection_Chemin)
                Case 1
                    'S'il s'agit d'un repertoire
                    _Parent.SMC_Explorer.ACTION_SelectionnerRepertoire(_Parent.SMC_Explorer.Selection_Chemin)
                    'S"il s'agit d'une video
                Case Is > 1
                    INT_Action = 0
                    'S'il s'agit d'un element que l'on a déjà commencé a voir alors on affiche un menu correspondant
                    If _Parent.SMC_Explorer.VideoElements(_Parent.SMC_Explorer.INT_Fichier_PositionAbsolue).Vu = 1 Then
                        DLG_Resume = GUIWindowManager.GetWindow(GUIWindow.Window.WINDOW_DIALOG_MENU)
                        DLG_Resume.Reset()
                        DLG_Resume.ShowQuickNumbers = False
                        DLG_Resume.SetHeading("LIRE A PARTIR:")
                        DLG_Resume.Add("DE " & CONV_HHMMSS(_Parent.SMC_Explorer.Selection_Position) & " SUR " & CONV_HHMMSS(_Parent.SMC_Explorer.Selection_Duree))
                        DLG_Resume.Add("DU DEBUT")
                        DLG_Resume.Add("ANNULER LA LECTURE")
                        DLG_Resume.DoModal(GUIWindowManager.ActiveWindow)
                        INT_Action = DLG_Resume.SelectedLabel
                    End If
                    'On gere la lecture de la video
                    If INT_Action <> 2 And INT_Action <> -1 Then
                        If _Parent.SMC_Explorer.Selection_Type = 2 Then
                            'S'il s'agit d'un dvd repertoire                            
                            _Parent.SMC_Lecture.LECTURE_Dvd_Repertoire(_Parent.SMC_Explorer.Selection_Chemin, INT_Action)
                        End If
                        If _Parent.SMC_Explorer.Selection_Type = 3 Then
                            'S'il s'agit d'un dvd iso
                            _Parent.SMC_Lecture.LECTURE_Dvd_Iso(_Parent.SMC_Explorer.Selection_Chemin, INT_Action)
                        End If
                        If _Parent.SMC_Explorer.Selection_Type = 4 Then
                            'S'il s'agit d'un divx fichier
                            _Parent.SMC_Lecture.LECTURE_DivX(_Parent.SMC_Explorer.Selection_Chemin, INT_Action)
                        End If
                    End If
            End Select
        End If
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Evenement utilisateur Retour
    '######################################################################################################################################
    Public Sub Peripherique_Retour()
        MediaPortal.GUI.Library.Log.Debug("[SMC] Evenements.vb >> Execution de Peripherique_Retour()", "")
        'Si on est pas au repertoire source
        If _Parent.SMC_Explorer.INT_Source_Selection <> -1 Then
            If _Parent.SMC_Configuration.Video(_Parent.SMC_Explorer.INT_Source_Selection).Chemin = _Parent.SMC_Explorer.STR_Repertoire_Courant Then
                'Si on est un repertoire sous la source et qu'on fait un retour, alors il faut retourner a la source
                _Parent.SMC_Explorer.ACTION_Source()
            Else
                'Sinon on passe au repertoire parent
                _Parent.SMC_Explorer.ACTION_SelectionnerRepertoire(Left(_Parent.SMC_Explorer.STR_Repertoire_Courant, InStrRev(_Parent.SMC_Explorer.STR_Repertoire_Courant, "\") - 1))
            End If
        End If
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Evenement utilisateur Menu
    '######################################################################################################################################
    Public Sub Peripherique_Menu()
        _Parent.SMC_Menu_Contextuel.Afficher()
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Converti des secondes en string de type hh:mm:ss
    '######################################################################################################################################
    Private Function CONV_HHMMSS(ByVal INT_PARAM1 As Integer)
        MediaPortal.GUI.Library.Log.Debug("[SMC] Evenements.vb >> Execution de CONV_HHMMSS()", "")
        Dim INT_Heure As Integer
        Dim INT_Minutes As Integer
        Dim INT_Secondes As Integer

        INT_Secondes = INT_PARAM1

        INT_Heure = Int(INT_Secondes / 3600)
        INT_Minutes = (Int(INT_Secondes / 60)) - (INT_Heure * 60)
        INT_Secondes = Int(INT_Secondes Mod 60)

        If INT_Secondes = 60 Then
            INT_Minutes = INT_Minutes + 1
            INT_Secondes = 0
        End If
        If INT_Minutes = 60 Then
            INT_Minutes = 0
            INT_Heure = INT_Heure + 1
        End If

        Return Format(INT_Heure, "00") & ":" & Format(INT_Minutes, "00") & ":" & Format(INT_Secondes, "00")
    End Function
    '######################################################################################################################################

End Class
